package model

import (
	"fmt"
	"service/model/mod"
	"strings"
)

// => 订单详情子数据
type CrmOrderInfo struct {
	InfoId  int64 `json:"infoId"`  //网课ID
	OrderId int64 `json:"orderId"` //订单ID
	//*********************start网课班型信息************************
	ProjectId   int64  `json:"projectId"`   //项目ID
	ProjectName string `json:"projectName"` //项目名称
	ClassId     int64  `json:"classId"`     //班型ID
	ClassName   string `json:"className"`   //班型名称
	//*********************start学历信息************************
	SchoolId    int64  `json:"schoolId"`    //学校ID
	SchoolName  string `json:"schoolName"`  //学校名称
	MajorId     int64  `json:"majorId"`     //专业ID
	MajorName   string `json:"majorName"`   //专业名称
	MStatus     int64  `json:"mStatus"`     //专业分类
	SStatus     int64  `json:"sStatus"`     //学历分类
	SStaName    string `json:"sStaName"`    //学历名称
	StudentName string `json:"studentName"` //学员姓名
	IdCard      string `json:"idCard"`      //学员身份证号
	Address     string `json:"address"`     //学员户籍地址
	//*********************start证书信息************************
	CertName string `json:"certName"` //证书名称
	//*********************start报名信息************************
	OAddress string `json:"oAddress"` //取证地址
	//*********************end报名信息**************************
	Price      int64 `json:"price"`    //网课价格
	OStatus    int64 `json:"oStatus"`  //是否退费
	OChange    int64 `json:"oChange"`  //是否换课
	OClose     int64 `json:"oClose"`   //是否关课
	UpdateAt   int64 `json:"updateAt"` //时间
	TmpCloseAt int64 `json:"closeAt"`  //临时关课时间(未支付订单页面里面根据此值判断 临时开课 按钮状态)
}

func DetailsInfo(items []*CrmOrderInfo) string {
	info := []string{}
	if len(items) == 0 {
		info = append(info, "")
		return strings.Join(info, ", ")
	}

	for _, it := range items {
		// 网课
		if it.ClassName != "" {
			info = append(info, it.ClassName)
			continue
		}

		// 学历
		if it.MajorName != "" {
			info = append(info, fmt.Sprintf("专业:%s 学历:%s 学校:%s", it.MajorName, mod.EducationName(int(it.MStatus)), it.SchoolName))
			continue
		}

		// 证书
		if it.CertName != "" {
			info = append(info, it.CertName)
			continue
		}
	}

	return strings.Join(info, ", ")
}

// => 临时开课详情
type CrmTemporaryOrderInfo struct {
	Id        int64 `json:"id"`        // 临时开课ID
	UserId    int64 `json:"userId"`    // 申请者
	ShowId    int64 `json:"showId"`    // 组织架构
	ShowIdStr int64 `json:"showIdStr"` // 组织架构字符串
	OrderId   int64 `json:"orderId"`   // 申请的订单号
	Status    int64 `json:"status"`    // 状态
	CreateAt  int64 `json:"createAt"`  // 创建时间(审核时间)
	CloseAt   int64 `json:"closeAt"`   // 关课时间
	ExamineAt int64 `json:"examineAt"` // 审核时间
}
